#! /usr/bin/env python

PACKAGE_NAME="laserscan_to_pointcloud"
NODE_NAME="laserscan_to_pointcloud_assembler"
FILE_NAME="LaserScanToPointcloudAssembler"

from dynamic_reconfigure.parameter_generator_catkin import *

gen = ParameterGenerator()
gen.add("laser_scan_topics", str_t, 1, "Topics with LaserScans to assemble separated by +", "/tilt_scan+/base_scan")
gen.add("pointcloud_publish_topic", str_t, 1, "Topic where the assembled scans will be published", "assembled_pointcloud")
gen.add("number_of_scans_to_assemble_per_cloud", int_t, 1, "Number of LaserScans to assemble for each PointCloud2 published", 2, 1)
gen.add("timeout_for_cloud_assembly", double_t, 1, "Maximum number of seconds for each cloud assembly", 1.0, 0.1)
gen.add("target_frame", str_t, 1, "Frame of reference in which the scans are going to be transformed", "map")
gen.add("recovery_frame", str_t, 1, "Frame used to retrieve the current tf between [sensor -> recovery_frame] in order to use the last known tf between [recovery_frame -> target_frame]. If empty disables recovery", "odom")
gen.add("min_range_cutoff_percentage_offset", double_t, 1, "Value that is going to be multiplied with the min_range reported with in the laser scan to remove points too far or too close", 1.05, 0)
gen.add("max_range_cutoff_percentage_offset", double_t, 1, "Value that is going to be multiplied with the max_range reported with in the laser scan to remove points too far or too close", 0.95, 0)
gen.add("include_laser_intensity", bool_t, 1, "Flag to include laser intensities in Pointcloud2", False)
gen.add("number_of_tf_queries_for_spherical_interpolation", int_t, 1, "Number of tfs used to performed laser spherical interpolation (if < 2 no interpolation is done and the tf in the middle of the scan time is used)", 4)
exit(gen.generate(PACKAGE_NAME, NODE_NAME, FILE_NAME))
